home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_11_05
/
test_obj
/
readme.txt
< prev
next >
Wrap
Text File
|
1993-02-28
|
5KB
|
108 lines
File: README.TXT
Copyright Norman Wilde 1993
/***********************************************************************/
/* The code and documentation for the "little language" based testing */
/* system is provided free. You are welcome to duplicate it and */
/* modify it. (However the AnaGram programming system it uses is a */
/* commercial product, available from Jerome T. Holland, 22 Forty */
/* Acres Drive, Wayland, MA 01778, tel. 508-358-7968.) */
/* */
/* If you have any suggestions about the testing system, please let */
/* me know. */
/* */
/* The system is provided as-is and with no warranty of fitness for use*/
/* for any particular purpose or situation. I disclaim all */
/* responsibility for any damages arising out of the use of this system*/
/* or any of its components. */
/* Norman Wilde */
/* wilde@cs.uwf.edu */
/***********************************************************************/
INTRODUCTION:
This readme file describes the content and the use
of a testing system for objects and other c/c++ code
based on a "little language". The objective of the system
is to let a programmer generate test driver programs that
will thoroughly test an object class or a collection of
c functions.
The overall structure
of the system is as shown in the following diagram:
Driver Generator Language
syntax file(DGEN.SYN) -> AnaGram
|
V
Test spec -> Driver generator -> Test Driver
(Tnnn.TST) (DGEN.EXE) (Tnnn.CPP)
You can use the existing system immediately to build test drivers that
only use basic c data types such as strings, ints, etc. If you need to
make a driver that handles your specialized objects you need to
extend the syntax file (DGEN.SYN) and you will need the
AnaGram grammar based programming system.
USING THE EXISTING SYSTEM:
The current version of DGEN.SYN produces the driver generator
DGEN.EXE. This can handle test specification files containing
the following c data types:
char
string (ie. char * with nul termination)
int
double
FILE *
as well as for the object classes in the Invoice example:
Item
Client
Invoice
To perform a set of tests, the steps are:
1. Write a Test Specification File similar to T001.TST, which
tests the objects in INVOICE.H and INVOICE.CPP. DGEN.SYN can be
consulted for details of the little language for test specifications.
2. Generate a test driver, say T001.CPP, using the following
command:
DGEN <T001.TST >T001.CPP
3. Compile the resulting test driver and link it with the
objects to be tested. The command will probably be something
like:
TCC T001.CPP INVOICE.CPP TESTGEN.CPP
This should produce an executable called T001.EXE. Note that
the TESTGEN.CPP file is needed since it contains utilities that
help to generate combinations of data for testing.
4. Run the test with a command such as:
T001 > T001.OUT
5. Check the test output in T001.OUT by hand or by comparison
with previous output from the same test.
ADDING YOUR OWN OBJECT CLASSES:
To extend the little language for a new object class, just
add another alternative to the "declaration" production in
DGEN.SYN. The existing "ClientDeclaration" or "InvoiceDeclaration"
could serve as a model.
Use AnaGram to process the changed DGEN.SYN and produce a new DGEN.C
and DGEN.H. Then compile with a command similar to the following:
TCC DGEN.C TUTILS.C
to produce a new DGEN.EXE and proceed as in the previous section. Note
that TUTILS.C is needed since it contains the code of the reduction
procedures.
FILES IN THE SYSTEM:
DGEN SYN Syntax of the Driver Generator Language
DGEN C Source for driver generator - produced by AnaGram
DGEN H Header for DGEN.C - produced by AnaGram
DGEN EXE Executable for driver generator
INVOICE CPP Code for the Invoice example
INVOICE H Header for the Invoice example
README TXT This file
T001 CPP Test driver generated from spec. T001.TST
T001 TST Test specification for the Invoice example
TESTGEN CPP Utility code used by generated test drivers.
TESTGEN H Header for TESTGEN.CPP
TUTILS C Utility code used in generating test drivers.
TUTILS H Header for TUTILS.C